package util;

import com.csvreader.CsvWriter;

import java.io.*;

public class ExportFile {
    //用来写出Csv文件或Tsv文件
    public static void writeTableFile(String filePath,String[] colName,String[][] data){
        char Delimiter = ' ';
        if (filePath.contains(".tsv")){
            Delimiter = '\t';
        }else if(filePath.contains(".csv")){
            Delimiter = ',';
        }else if(filePath.contains(".txt")){
            Delimiter = '\t';
        } else {
            return;
        }

        File outFile = new File(filePath);//输出的CSV文件
        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter(outFile));
            CsvWriter cwriter = new CsvWriter(writer,Delimiter);  //不知道逗号是不是分隔符
            if(colName==null || (colName!=null && colName.length==0) ){  //若表头为空

            }else {
                cwriter.writeRecord(colName, true);
                cwriter.flush();//刷新数据
            }
            for (int i = 0; i < data.length; i++){

                //第一个参数表示要写入的字符串数组，每一个元素占一个单元格，第二个参数为true时表示写完数据后自动换行
                cwriter.writeRecord(data[i], true);
                //注意，此时再用cwriter.write(inString)方法写入数据将会看到只往第一个单元格写入了数据，“，”没起到调到下一个单元格的作用
                //如果用cwriter.write(String str)方法来写数据，则要用cwriter.endRecord()方法来实现换行
                //cwriter.endRecord();//换行
                cwriter.flush();//刷新数据
            }


            cwriter.close();
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
